home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / procssng / ccs / ccs-11tl.lha / lbl / xview / genial / ui / histo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-14  |  5.7 KB  |  193 lines

  1. /*
  2.  * histo.c
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <sys/param.h>
  7. #include <sys/types.h>
  8. #include <xview/xview.h>
  9. #include <xview/panel.h>
  10. #include <xview/textsw.h>
  11. #include <xview/xv_xrect.h>
  12. #include "histo_ui.h"
  13. #include "trace_ui.h"
  14. #include "histo.h"
  15. #include "ui.h"
  16.  
  17. histo_histo_ctrl_objects *histo_ctrl;
  18.  
  19. struct hcontext *histo_by_lid(), *histo_by_panelwin();
  20.  
  21. /*
  22.  * Notify callback function for `histno'.
  23.  */
  24. Panel_setting
  25. histno_proc(item, event)
  26.     Panel_item item;
  27.     Event    *event;
  28. {
  29.     int       value = (int) xv_get(item, PANEL_VALUE);
  30.     int       bucket;
  31.     struct hcontext *hist;
  32.  
  33. #ifdef DEBUG
  34.     fprintf(stderr, "histo: histno_proc: value: %d\n", value);
  35. #endif
  36.  
  37.     if (value < 1) {
  38.     xv_set(item, PANEL_VALUE, 1, NULL);
  39.     return;
  40.     }
  41.     if ((hist = histo_by_lid(value)) == NULL) {
  42.     xv_set(item, PANEL_VALUE, value - 1, NULL);
  43.     return;
  44.     }
  45.     hist->subnum = turn_off_other_select_boxes();
  46.  
  47.     bucket = hist->interval[0].lower;
  48.     if (bucket != 0)
  49.     xv_set(histo_ctrl->min1, PANEL_VALUE, btog(bucket, hist), NULL);
  50.     else
  51.     xv_set(histo_ctrl->min1, PANEL_VALUE, 0, NULL);
  52.     bucket = hist->interval[0].upper;
  53.     if (bucket != NUM_BUCKETS - 1)
  54.     xv_set(histo_ctrl->max1, PANEL_VALUE, btog(bucket, hist), NULL);
  55.     else
  56.     xv_set(histo_ctrl->max1, PANEL_VALUE, 0, NULL);
  57.  
  58.     bucket = hist->interval[1].lower;
  59.     if (bucket != 0)
  60.     xv_set(histo_ctrl->min2, PANEL_VALUE, btog(bucket, hist), NULL);
  61.     else
  62.     xv_set(histo_ctrl->min2, PANEL_VALUE, 0, NULL);
  63.     bucket = hist->interval[1].upper;
  64.     if (bucket != NUM_BUCKETS - 1)
  65.     xv_set(histo_ctrl->max2, PANEL_VALUE, btog(bucket, hist), NULL);
  66.     else
  67.     xv_set(histo_ctrl->max2, PANEL_VALUE, 0, NULL);
  68.  
  69.     bucket = hist->interval[2].lower;
  70.     if (bucket != 0)
  71.     xv_set(histo_ctrl->min3, PANEL_VALUE, btog(bucket, hist), NULL);
  72.     else
  73.     xv_set(histo_ctrl->min3, PANEL_VALUE, 0, NULL);
  74.     bucket = hist->interval[2].upper;
  75.     if (bucket != NUM_BUCKETS - 1)
  76.     xv_set(histo_ctrl->max3, PANEL_VALUE, btog(bucket, hist), NULL);
  77.     else
  78.     xv_set(histo_ctrl->max3, PANEL_VALUE, 0, NULL);
  79.  
  80.     bucket = hist->interval[3].lower;
  81.     if (bucket != 0)
  82.     xv_set(histo_ctrl->min4, PANEL_VALUE, btog(bucket, hist), NULL);
  83.     else
  84.     xv_set(histo_ctrl->min4, PANEL_VALUE, 0, NULL);
  85.     bucket = hist->interval[3].upper;
  86.     if (bucket != NUM_BUCKETS - 1)
  87.     xv_set(histo_ctrl->max4, PANEL_VALUE, btog(bucket, hist), NULL);
  88.     else
  89.     xv_set(histo_ctrl->max4, PANEL_VALUE, 0, NULL);
  90.  
  91.     bucket = hist->interval[4].lower;
  92.     if (bucket != 0)
  93.     xv_set(histo_ctrl->min5, PANEL_VALUE, btog(bucket, hist), NULL);
  94.     else
  95.     xv_set(histo_ctrl->min5, PANEL_VALUE, 0, NULL);
  96.     bucket = hist->interval[4].upper;
  97.     if (bucket != NUM_BUCKETS - 1)
  98.     xv_set(histo_ctrl->max5, PANEL_VALUE, btog(bucket, hist), NULL);
  99.     else
  100.     xv_set(histo_ctrl->max5, PANEL_VALUE, 0, NULL);
  101.  
  102.     bucket = hist->interval[5].lower;
  103.     if (bucket != 0)
  104.     xv_set(histo_ctrl->min6, PANEL_VALUE, btog(bucket, hist), NULL);
  105.     else
  106.     xv_set(histo_ctrl->min6, PANEL_VALUE, 0, NULL);
  107.     bucket = hist->interval[5].upper;
  108.     if (bucket != NUM_BUCKETS - 1)
  109.     xv_set(histo_ctrl->max6, PANEL_VALUE, btog(bucket, hist), NULL);
  110.     else
  111.     xv_set(histo_ctrl->max6, PANEL_VALUE, 0, NULL);
  112.  
  113.     bucket = hist->interval[6].lower;
  114.     if (bucket != 0)
  115.     xv_set(histo_ctrl->min7, PANEL_VALUE, btog(bucket, hist), NULL);
  116.     else
  117.     xv_set(histo_ctrl->min7, PANEL_VALUE, 0, NULL);
  118.     bucket = hist->interval[6].upper;
  119.     if (bucket != NUM_BUCKETS - 1)
  120.     xv_set(histo_ctrl->max7, PANEL_VALUE, btog(bucket, hist), NULL);
  121.     else
  122.     xv_set(histo_ctrl->max7, PANEL_VALUE, 0, NULL);
  123.  
  124.     bucket = hist->interval[7].lower;
  125.     if (bucket != 0)
  126.     xv_set(histo_ctrl->min8, PANEL_VALUE, btog(bucket, hist), NULL);
  127.     else
  128.     xv_set(histo_ctrl->min8, PANEL_VALUE, 0, NULL);
  129.     bucket = hist->interval[7].upper;
  130.     if (bucket != NUM_BUCKETS - 1)
  131.     xv_set(histo_ctrl->max8, PANEL_VALUE, btog(bucket, hist), NULL);
  132.     else
  133.     xv_set(histo_ctrl->max8, PANEL_VALUE, 0, NULL);
  134.  
  135.     return panel_text_notify(item, event);
  136. }
  137.  
  138. /*******************************************/
  139. histo_control_init()
  140. {
  141.  
  142.     xv_set(histo_ctrl->sel1, PANEL_VALUE, 0, NULL);
  143.     xv_set(histo_ctrl->sel2, PANEL_VALUE, 0, NULL);
  144.     xv_set(histo_ctrl->sel3, PANEL_VALUE, 0, NULL);
  145.     xv_set(histo_ctrl->sel4, PANEL_VALUE, 0, NULL);
  146.     xv_set(histo_ctrl->sel5, PANEL_VALUE, 0, NULL);
  147.     xv_set(histo_ctrl->sel6, PANEL_VALUE, 0, NULL);
  148.     xv_set(histo_ctrl->sel7, PANEL_VALUE, 0, NULL);
  149.     xv_set(histo_ctrl->sel8, PANEL_VALUE, 0, NULL);
  150.  
  151.     xv_set(histo_ctrl->min1, PANEL_VALUE, 0, NULL);
  152.     xv_set(histo_ctrl->max1, PANEL_VALUE, 0, NULL);
  153.     xv_set(histo_ctrl->min2, PANEL_VALUE, 0, NULL);
  154.     xv_set(histo_ctrl->max2, PANEL_VALUE, 0, NULL);
  155.     xv_set(histo_ctrl->min3, PANEL_VALUE, 0, NULL);
  156.     xv_set(histo_ctrl->max3, PANEL_VALUE, 0, NULL);
  157.     xv_set(histo_ctrl->min4, PANEL_VALUE, 0, NULL);
  158.     xv_set(histo_ctrl->max4, PANEL_VALUE, 0, NULL);
  159.     xv_set(histo_ctrl->min5, PANEL_VALUE, 0, NULL);
  160.     xv_set(histo_ctrl->max5, PANEL_VALUE, 0, NULL);
  161.     xv_set(histo_ctrl->min6, PANEL_VALUE, 0, NULL);
  162.     xv_set(histo_ctrl->max6, PANEL_VALUE, 0, NULL);
  163.     xv_set(histo_ctrl->min7, PANEL_VALUE, 0, NULL);
  164.     xv_set(histo_ctrl->max7, PANEL_VALUE, 0, NULL);
  165.     xv_set(histo_ctrl->min8, PANEL_VALUE, 0, NULL);
  166.     xv_set(histo_ctrl->max8, PANEL_VALUE, 0, NULL);
  167.  
  168. }
  169.  
  170. /*******************************************/
  171.  
  172. void
  173. histo_refresh_proc(item, event)
  174.     Panel_item item;
  175.     Event    *event;
  176. {
  177.     struct hcontext *hist, *histo_by_panelwin();
  178.  
  179. #ifdef DEBUG
  180.     fputs("trace: trace_refresh_proc\n", stderr);
  181. #endif
  182.  
  183.     hist = histo_by_panelwin(event_window(event));
  184.     if (hist == NULL)
  185.     return;
  186.  
  187.     /* repaint the window */
  188.     histo_repaint_proc(hist->histo_display->histocanv,
  189.                hist->paintwin, display,
  190.                hist->hxid, (Xv_xrectlist *) NULL);
  191.  
  192. }
  193.